package com.projetosi.web.server.sistema.facade;

import com.projetosi.web.server.sistema.objetos.Sistema;
/**
 * 
 * @author  Filipe Alencar, Felipe Jos� F. Cavalcanti, Rodrigo L. de Brito, Thiago Gon�alves, Victor Hugo Arcelino.
 *
 */
public class SistemaFacade {

	private static Sistema sistema = Sistema.getInstance();

	public void adicionarDias(int dias){
		sistema.adicionarDias(dias);
	}

	public void requisitarDevolucao(String idSessao, String idEmprestimo) throws Exception{
		sistema.requisitarDevolucao(idSessao, idEmprestimo);
	}

	public String enviarMensagem(String idSessao, String destinatario, String assunto, String mensagem) throws Exception{
		return sistema.enviarMensagem(idSessao, destinatario, assunto, mensagem);
	}

	public String enviarMensagem(String idSessao, String destinatario, String assunto, String mensagem, String idRequisicaoEmprestimo) throws Exception{
		return sistema.enviarMensagem(idSessao, destinatario, assunto, mensagem, idRequisicaoEmprestimo);
	}

	public String lerMensagens(String idSessao, String idTopico) throws Exception{
		return sistema.lerMensagens(idSessao, idTopico);
	}

	public String lerTopicos(String idSessao, String tipo) throws Exception{
		return sistema.lerTopicos(idSessao, tipo);
	}

	public void criarUsuario(String login, String senha, String nome, String endereco)throws Exception{
		sistema.criarUsuario(login, senha, nome, endereco);
	}

	public Integer cadastrarItem(String idSessao, String nome, String descricao, String categoria)throws Exception{
		return sistema.cadastrarItem(idSessao, nome, descricao, categoria);
	}

	public String getRequisicoesDeAmizade(String idSessao) throws Exception{
		return sistema.getRequisicoesDeAmizade(idSessao);
	}

	public String getAmigos(String idSessao) throws Exception{
		return sistema.getAmigos(idSessao);
	}

	public String getAmigos(String idSessao, String login) throws Exception{
		return sistema.getAmigos(idSessao, login);
	}

	public int abrirSessao(String login) throws Exception{
		return sistema.abrirSessao(login);
	}

	public void requisitarAmizade(String idSessao, String login) throws Exception{
		sistema.requisitarAmizade(idSessao, login);
	}

	public String ehAmigo(String idSessao, String login) throws Exception{
		return sistema.verificaAmizade(idSessao, login);
	}

	public void aprovarAmizade(String idSessao, String login) throws Exception{
		sistema.aprovarAmizade(idSessao, login);
	}

	public String getAtributoUsuario(String login,String atributo)throws Exception{
		return sistema.getAtributoUsuario(login, atributo);
	}

	public String localizarUsuario(String idSessao, String chave, String atributo)throws Exception{
		return sistema.localizarUsuario(idSessao, chave, atributo);
	}

	public String getAtributoItem(String idItem, String atributo)throws Exception{
		return sistema.getAtributoItem(idItem, atributo);
	}

	public String getItens(String idSessao) throws Exception{
		return sistema.getItens(idSessao);
	}

	public String getItens(String idSessao, String login) throws Exception{
		return sistema.getItens(idSessao, login);
	}

	public Integer requisitarEmprestimo(String idSessao, String idItem, int duracaoDoEmprestimo) throws Exception{
		return sistema.requisitarEmprestimo(idSessao, idItem, duracaoDoEmprestimo);

	}

	public Integer aprovarEmprestimo(String idSessao, String idRequisicaoEmprestimo) throws Exception{
		return sistema.aprovarEmprestimo(idSessao, idRequisicaoEmprestimo);
	}

	public String getEmprestimos(String idSessao, String tipo) throws Exception{
		return sistema.getEmprestimos(idSessao, tipo);
	}

	public void devolverItem(String idSessao, String idEmprestimo) throws Exception{
		sistema.devolverItem(idSessao, idEmprestimo);
	}

	public void confirmarTerminoEmprestimo(String idSessao, String idEmprestimo) throws Exception{
		sistema.confirmarTerminoEmprestimo(idSessao, idEmprestimo);
	}

	public void apagarItem(String idSessao, String idItem) throws Exception{
		sistema.apagarItem(idSessao, idItem);
	}

	public void zerarSistema(){
		sistema.zerarSistema();
	}

	public void encerrarSistema(){
		sistema.encerrarSistema();
	}
	//USER CASE 14
	public String getRanking(String idSessao,String Categoria) throws Exception{
		return sistema.getRanking(idSessao,Categoria);
	}
	//USER CASE 10 victurino esta devendo um beijo na boca de victor hugo
	public void registrarInteresse(String idSessao,String idItem) throws Exception{
		sistema.registrarInteresse(idSessao,idItem);
	}

	//USER CASE 12
	public void desfazerAmizade(String idSessao, String loginDoAmigo) throws Exception{
		sistema.desfazerAmizade(idSessao, loginDoAmigo);
	}
	//USERCASE 11 
	public String pesquisarItem(String idSessao,String chave,String atributo,String tipoOrdenacao,String criterioOrdenacao) throws Exception{
		return sistema.pesquisarItem(idSessao,chave,atributo,tipoOrdenacao,criterioOrdenacao);
	}

	//USERCASE 15
	public String historicoAtividades(String idSessao) throws Exception{
		return sistema.exbirHistoricoAtividadesDoUsuario(idSessao);
	}

	//USERCASE 16
	public String historicoAtividadesConjunto(String idSessao) throws Exception{
		return sistema.exibirHistoricoDeAtividadesConjunto(idSessao);
	}
	public Sistema getSistema() {
		return sistema;
	}
	//USERCASE 17
	public String publicarPedido(String idSessao,String nomeItem,String descricaoItem) throws Exception{
		return sistema.publicarPedido(idSessao,nomeItem,descricaoItem);
	}
	public void rePublicarPedido(String idSessao,String idPublicacaoPedido) throws Exception{
		sistema.rePublicarPedido(idSessao,idPublicacaoPedido);
	}
	//USERCASE 18
	public void oferecerItem(String idSessao, String idPublicacaoPedido, String idItem) throws Exception{
		sistema.oferecerItem(idSessao, idPublicacaoPedido, idItem);
	}
	
	//USERCASE 20
	public String localizarUsuario(String idSessao) throws Exception{
		return sistema.localizarUsuario(idSessao);
	}
}
